package org.example.hansp.sort;

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr={1,3,43,439,223,0};
        /*for (int i=0;i<arr.length-1;i++){

            for (int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }

        }*/
       /* for(int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }*/

//        改进，加一个提前退出的标志
        for(int i=0;i<arr.length-1;i++){
//            提前退出冒泡排序的标志
            boolean swapped=false;
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    swapped=true;
                }

            }
//            如果没有发生交换，说明已经有序
            if(!swapped){
                break;
            }
        }


        for (int j : arr) {
            System.out.println(j);
        }
    }
}
